package tcu.yuyp.service;

import tcu.yuyp.pojo.Invitation;
import tcu.yuyp.pojo.R;

import java.util.List;

//用来定义服务层的各种方法
public interface InvitationsService {

    //判断客户端的请求，并执行对应的方法--对应servlet中的doPost方法
    void postInvitationResponse(Invitation newInvitation, String requestURI, R r, String loginName);

    //报名参加邀请函的方法
    void postJoinInvitation(List<Invitation> invitationList, String requestURI, R r, String loginName);

    //成功报名的方法--> 更新邀请函 已报名的人数 和 包含已报名的用户的用户名数组
    void succeedJoinInvitation(Invitation invitation, String loginName);

    //查验邀请函报名人员是否重复的方法
    boolean isNameRepeat(Invitation invitation, String loginName);

    //查验该邀请函是否为自己所创建的方法
    boolean isFoundedByHimself(Invitation invitation, String loginName);

    //查验邀请函人数是否已经满员的方法
    boolean isFull(Invitation invitation);

    //查验邀请函是否过期的方法
    boolean isExpire(Invitation invitation);

    //发布邀请函的方法
    void postInvitation(Invitation newInvitation, String loginName, R r);

    //查看邀请函的方法-->对应servlet中的doGet方法
    void getInvitationResponse(R r, String requestURI);

    //返回查看邀请函详情指定数据的方法
    Invitation getInvitationDetail(Invitation invitation);

    //返回查看邀请函列表指定数据的方法
    void getInvitationList(List<Invitation> invitationListForList, List<Invitation> invitationList);

    //获取 查看邀请函列表指定信息 的方法
    Invitation getInvitationForList(Invitation invitation);

    //计算邀请函报名人数比例
    String countPercent(Invitation invitation);

    //将迭代器对象转化为List集合对象
    List<Invitation> turnForInvitationList(Iterable<Invitation> invitationIterable);

}

